GitHub と homesick を使って複数 Mac 間で dotfiles を同期する
複数 Mac 間で、.vimrc や .zshrc などの設定ファイル(dotfiles)の同期って面倒くさいですよね。
dotfiles の管理には、GitHub とシェルで管理したり、Dropbox を使ったりあるようですが、
最近 homesick という gem を教えてもらい、簡単に管理することができたので、私はコレを使っています。
用意するもの
- GitHub のアカウント
- Mac *1
homesick のインストール
homesick は gem install で簡単にインストールできます。
$ gem install homesick
rbenv を使ってる場合は、rehash しておきましょう。
$ rbenv rehash
GitHub に dotfiles リポジトリを作成
GitHub にリポジトリを作成します。
先ずは、ローカルに dotfiles ディレクトリを作成し、git init しておきます。
$ mkdir ~/dotfiles && cd ~/dotfiles $ git init Initialized empty Git repository in /Users/yamato/dotfiles/.git/
次に home ディレクトリを作成し、その中に管理したい dotfiles をコピーします。
$ mkdir home && cd home $ cp ~/.vimrc . $ cp ~/.zshrc .
GitHub にリポジトリを作成します。ここでは GitHub をコマンドラインから操作できる Hub を使っています。
$ hub create Updating origin created repository: yamato_no_github/dotfiles
作成が終わったら、push しましょう。
$ git add . $ git commit -m 'Initial commit' $ git push -u origin master
dotfiles を homesick 管理下に置く
今作ったリポジトリを homesick clone コマンドによって GitHub から clone します。
$ homesick clone yamayo/dotfiles git clone https://github.com/yamato_no_github/dotfiles.git to /Users/yamato/.homesick/repos/dotfiles
~/.homesick/repos/dotfiles に clone されます。
ホームディレクトリに移り、symlink コマンドでシンボリックリンクを貼ります。
$ cd ~ && homesick symlink dotfiles
作成されたシンボリックリンクを確認しましょう。
$ ls -la ・・・ ・・・ .vimrc -> /Users/yamato/.homesick/repos/dotfiles/home/.vimrc ・・・ .zshrc -> /Users/yamato/.homesick/repos/dotfiles/home/.zshrc ・・・
homesick で clone してくると remote.origin.url が https になっているので、ssh に変更しておきます。
$ cd ~/.homesick/repos/dotfiles $ git config --list | grep remote.origin.url remote.origin.url=https://github.com/yamato_no_github/dotfiles.git $ git config remote.origin.url git@github.com:yamato_no_github/dotfiles.git
あとはこの ~/.homesick ディレクトリで管理するので、最初に作った dotfiles ディレクトリは削除しておきましょう。
$ rm -rf ~/dotfiles
これで他の Mac からも homesick をインストールし clone することで同期できるようになります。
まとめ
最近は、Boxen などを使って Mac のコンフィグを行ったり、自動化を行うツールも増えてきていますね。
なるべく同じ作業は減らして、世界を変えるためのコードを書いていきたいですね。
参考サイト
脚注
- Windows では試していません。。 ↩